<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button class="btn">点击</button>
    <script>
        // 1.如何理解模块化，模块化实现的方式？
        // 独立命名空间 ，变量污染 。
        // AMD require.js CMD sea.js
        // commonjs规范  nodejs里
        // ESM：ES6 module
        // 2.闭包应用？
        // 防抖：施法前摇 、节流:技能的cd 、缓存 、科里化

        // 前置防抖：函数立刻执行 ，然后再防抖
        // function debounce(fn, delay) {
        //     let timer = null;
        //     return function () {
        //         if (!timer) {
        //             fn();
        //         }
        //         clearTimeout(timer);
        //         timer = setTimeout(() => {
        //             timer = null;
        //         }, delay);
        //     }
        // }

        // // 后置防抖：先防抖 ，然后再执行函数
        // function debounce(fn, delay) {
        //     let timer = null;
        //     return function () {
        //         clearTimeout(timer);
        //         timer = setTimeout(() => {
        //                 fn();
        //         }, delay);
        //     }
        // }
        // document.onclick = debounce(function () {
        //     console.log("执行了");
        // }, 1000)

        // // 节流 :控制执行频率就可以了
        // function throttle(fn,delay){
        //     let start = new Date().getTime();
        //      return function(){
        //          let now = new Date().getTime();
        //          if((now-start)>delay){
        //             fn();
        //             start =  new Date().getTime();
        //          }
        //      }
        // }

        // window.onresize = throttle(function(){
        //     console.log("窗口改变触发");
        // },500);
        // document.onmousemove = throttle(function(){
        //     console.log("执行了");
        // },1000)

        // let obj = {
        //     "name":"张三"
        // }
        // console.log(obj);

        // let myname = "name";

        // let obj = {
        //     [myname]:"张三"
        // }
        // console.log(obj);

        let obj = {
            myname:"张三",
            name:"李四"
        }

        let myname = "name";
    //    console.log( obj.myname)
    console.log(obj[myname]);


    </script>
</body>

</html>